Enter the directory of the maca folder on your drive and the name of the tissue you want to analyze.
tissue_of_interest = "Kidney"
Load the requisite packages and some additional helper functions.
library(here)
library(useful)
library(Seurat)
library(dplyr)
library(Matrix)
library(ontologyIndex)
cell_ontology = get_ontology('https://raw.githubusercontent.com/obophenotype/cell-ontology/master/cl-basic.obo', extract_tags='everything')
validate_cell_ontology = function(cell_ontology_class){
in_cell_ontology = sapply(cell_ontology_class, function(x) is.element(x, cell_ontology$name) || is.na(x))
if (!all(in_cell_ontology)) {
message = paste0('"', cell_ontology_class[!in_cell_ontology], '" is not in the cell ontology
')
stop(message)
}
}
convert_to_cell_ontology_id = function(cell_ontology_class){
return(sapply(cell_ontology_class, function(x) as.vector(cell_ontology$id[cell_ontology$name == x])[1]))
}
save_dir = here('00_data_ingest', 'tissue_robj')
# read the metadata to get the plates we want
plate_metadata_filename = here('00_data_ingest', '00_facs_raw_data', 'metadata_FACS.csv')
plate_metadata <- read.csv(plate_metadata_filename, sep=",", header = TRUE)
colnames(plate_metadata)[1] <- "plate.barcode"
plate_metadata
Subset the metadata on the tissue.
tissue_plates = filter(plate_metadata, tissue == tissue_of_interest)[,c('plate.barcode','tissue','subtissue','mouse.sex')]
tissue_plates
Load the read count data.
#Load the gene names and set the metadata columns by opening the first file
filename = here('00_data_ingest', '00_facs_raw_data', 'FACS', paste0(tissue_of_interest, '-counts.csv'))
raw.data = read.csv(filename, sep=",", row.names=1)
# raw.data = data.frame(row.names = rownames(raw.data))
corner(raw.data)
Make a vector of plate barcodes for each cell
plate.barcodes = lapply(colnames(raw.data), function(x) strsplit(strsplit(x, "_")[[1]][1], '.', fixed=TRUE)[[1]][2])
head(plate.barcodes)
[[1]]
[1] "MAA000545"
[[2]]
[1] "MAA000545"
[[3]]
[1] "MAA000545"
[[4]]
[1] "MAA000545"
[[5]]
[1] "MAA000545"
[[6]]
[1] "MAA000545"
Use only the metadata rows corresponding to Bladder plates. Make a plate barcode dataframe to “expand” the per-plate metadata to be per-cell.
barcode.df = t.data.frame(as.data.frame(plate.barcodes))
rownames(barcode.df) = colnames(raw.data)
colnames(barcode.df) = c('plate.barcode')
head(barcode.df)
plate.barcode
A14.MAA000545.3_8_M.1.1 "MAA000545"
E1.MAA000545.3_8_M.1.1 "MAA000545"
M4.MAA000545.3_8_M.1.1 "MAA000545"
O21.MAA000545.3_8_M.1.1 "MAA000545"
P4.MAA000545.3_8_M.1.1 "MAA000545"
A16.MAA000545.3_8_M.1.1 "MAA000545"
rnames = row.names(barcode.df)
meta.data <- merge(barcode.df, plate_metadata, by='plate.barcode', sort = F)
row.names(meta.data) <- rnames
# Sort cells by plate barcode because that's how the data was originally
meta.data = meta.data[order(meta.data$plate.barcode), ]
corner(meta.data)
raw.data = raw.data[, rownames(meta.data)]
corner(raw.data)
Process the raw data and load it into the Seurat object.
# Find ERCC's, compute the percent ERCC, and drop them from the raw data.
erccs <- grep(pattern = "^ERCC-", x = rownames(x = raw.data), value = TRUE)
percent.ercc <- Matrix::colSums(raw.data[erccs, ])/Matrix::colSums(raw.data)
ercc.index <- grep(pattern = "^ERCC-", x = rownames(x = raw.data), value = FALSE)
raw.data <- raw.data[-ercc.index,]
# Create the Seurat object with all the data
tiss <- CreateSeuratObject(raw.data = raw.data, project = tissue_of_interest,
min.cells = 5, min.genes = 5)
tiss <- AddMetaData(object = tiss, meta.data)
tiss <- AddMetaData(object = tiss, percent.ercc, col.name = "percent.ercc")
# Change default name for sums of counts from nUMI to nReads
colnames(tiss@meta.data)[colnames(tiss@meta.data) == 'nUMI'] <- 'nReads'
# Create metadata columns for cell_ontology_classs and subcell_ontology_classs
tiss@meta.data[,'free_annotation'] <- NA
tiss@meta.data[,'cell_ontology_class'] <- NA
tiss@meta.data[,'subcell_ontology_class'] <- NA
Calculate percent ribosomal genes.
ribo.genes <- grep(pattern = "^Rp[sl][[:digit:]]", x = rownames(x = tiss@data), value = TRUE)
percent.ribo <- Matrix::colSums(tiss@raw.data[ribo.genes, ])/Matrix::colSums(tiss@raw.data)
tiss <- AddMetaData(object = tiss, metadata = percent.ribo, col.name = "percent.ribo")
A sanity check: genes per cell vs reads per cell.
GenePlot(object = tiss, gene1 = "nReads", gene2 = "nGene", use.raw=T)
Filter out cells with few reads and few genes.
tiss <- FilterCells(object = tiss, subset.names = c("nGene", "nReads"),
low.thresholds = c(500, 50000), high.thresholds = c(25000, 2000000))
Normalize the data, then regress out correlation with total reads
tiss <- NormalizeData(object = tiss, scale.factor = 1e6)
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
tiss <- ScaleData(object = tiss)
[1] "Scaling data matrix"
|
| | 0%
|
|===========================================================================================================================| 100%
tiss <- FindVariableGenes(object = tiss, do.plot = TRUE, x.low.cutoff = 0.7 , x.high.cutoff = Inf, y.cutoff = 0.4)
Calculating gene means
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Run Principal Component Analysis.
tiss <- RunPCA(object = tiss, do.print = FALSE)
tiss <- ProjectPCA(object = tiss, do.print = FALSE)
Later on (in FindClusters and TSNE) you will pick a number of principal components to use. This has the effect of keeping the major directions of variation in the data and, ideally, supressing noise. There is no correct answer to the number to use, but a decent rule of thumb is to go until the plot plateaus.
PCElbowPlot(object = tiss)
Choose the number of principal components to use.
# Set number of principal components.
n.pcs = 8
The clustering is performed based on a nearest neighbors graph. Cells that have similar expression will be joined together. The Louvain algorithm looks for groups of cells with high modularity–more connections within the group than between groups. The resolution parameter determines the scale…higher resolution will give more clusters, lower resolution will give fewer.
For the top-level clustering, aim to under-cluster instead of over-cluster. It will be easy to subset groups and further analyze them below.
# Set resolution
res.used <- 2.5
tiss <- FindClusters(object = tiss, reduction.type = "pca", dims.use = 1:n.pcs,
resolution = res.used, print.output = 0, save.SNN = TRUE)
To visualize
# If cells are too spread out, you can raise the perplexity. If you have few cells, try a lower perplexity (but never less than 10).
tiss <- RunTSNE(object = tiss, dims.use = 1:n.pcs, seed.use = 10, perplexity=30)
# note that you can set do.label=T to help label individual clusters
TSNEPlot(object = tiss, do.label = T)
Check expression of genes of interset.
Dotplots let you see the intensity of exppression and the fraction of cells expressing for each of your genes of interest.
How big are the clusters?
table(tiss@ident)
0 1 2 3 4 5 6 7 8 9
71 65 60 58 57 55 53 45 39 14
Which markers identify a specific cluster?
clust.markers <- FindMarkers(object = tiss, ident.1 = 7, ident.2 = c(2,3,4,6), only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~09s
|++ | 2 % ~08s
|++ | 3 % ~07s
|+++ | 5 % ~06s
|+++ | 6 % ~06s
|++++ | 7 % ~06s
|+++++ | 8 % ~05s
|+++++ | 9 % ~05s
|++++++ | 10% ~05s
|++++++ | 12% ~05s
|+++++++ | 13% ~05s
|+++++++ | 14% ~05s
|++++++++ | 15% ~05s
|+++++++++ | 16% ~05s
|+++++++++ | 17% ~05s
|++++++++++ | 19% ~04s
|++++++++++ | 20% ~04s
|+++++++++++ | 21% ~04s
|++++++++++++ | 22% ~04s
|++++++++++++ | 23% ~04s
|+++++++++++++ | 24% ~04s
|+++++++++++++ | 26% ~04s
|++++++++++++++ | 27% ~04s
|++++++++++++++ | 28% ~04s
|+++++++++++++++ | 29% ~04s
|++++++++++++++++ | 30% ~04s
|++++++++++++++++ | 31% ~04s
|+++++++++++++++++ | 33% ~04s
|+++++++++++++++++ | 34% ~03s
|++++++++++++++++++ | 35% ~03s
|+++++++++++++++++++ | 36% ~03s
|+++++++++++++++++++ | 37% ~03s
|++++++++++++++++++++ | 38% ~03s
|++++++++++++++++++++ | 40% ~03s
|+++++++++++++++++++++ | 41% ~03s
|+++++++++++++++++++++ | 42% ~03s
|++++++++++++++++++++++ | 43% ~03s
|+++++++++++++++++++++++ | 44% ~03s
|+++++++++++++++++++++++ | 45% ~03s
|++++++++++++++++++++++++ | 47% ~03s
|++++++++++++++++++++++++ | 48% ~03s
|+++++++++++++++++++++++++ | 49% ~03s
|+++++++++++++++++++++++++ | 50% ~03s
|++++++++++++++++++++++++++ | 51% ~02s
|+++++++++++++++++++++++++++ | 52% ~02s
|+++++++++++++++++++++++++++ | 53% ~02s
|++++++++++++++++++++++++++++ | 55% ~02s
|++++++++++++++++++++++++++++ | 56% ~02s
|+++++++++++++++++++++++++++++ | 57% ~02s
|++++++++++++++++++++++++++++++ | 58% ~02s
|++++++++++++++++++++++++++++++ | 59% ~02s
|+++++++++++++++++++++++++++++++ | 60% ~02s
|+++++++++++++++++++++++++++++++ | 62% ~02s
|++++++++++++++++++++++++++++++++ | 63% ~02s
|++++++++++++++++++++++++++++++++ | 64% ~02s
|+++++++++++++++++++++++++++++++++ | 65% ~02s
|++++++++++++++++++++++++++++++++++ | 66% ~02s
|++++++++++++++++++++++++++++++++++ | 67% ~02s
|+++++++++++++++++++++++++++++++++++ | 69% ~02s
|+++++++++++++++++++++++++++++++++++ | 70% ~02s
|++++++++++++++++++++++++++++++++++++ | 71% ~01s
|+++++++++++++++++++++++++++++++++++++ | 72% ~01s
|+++++++++++++++++++++++++++++++++++++ | 73% ~01s
|++++++++++++++++++++++++++++++++++++++ | 74% ~01s
|++++++++++++++++++++++++++++++++++++++ | 76% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 05s
print(x = head(x= clust.markers, n = 20, avg_logFC))
You can also compute all markers for all clusters at once. This may take some time.
tiss.markers <- FindAllMarkers(object = tiss, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~42s
|+ | 2 % ~41s
|++ | 3 % ~40s
|++ | 4 % ~39s
|+++ | 5 % ~39s
|+++ | 6 % ~38s
|++++ | 7 % ~02m 02s
|++++ | 8 % ~01m 51s
|+++++ | 9 % ~01m 42s
|+++++ | 10% ~01m 35s
|++++++ | 11% ~01m 28s
|++++++ | 12% ~01m 23s
|+++++++ | 13% ~01m 18s
|+++++++ | 14% ~01m 14s
|++++++++ | 15% ~01m 11s
|++++++++ | 16% ~01m 07s
|+++++++++ | 17% ~01m 05s
|+++++++++ | 18% ~01m 02s
|++++++++++ | 19% ~60s
|++++++++++ | 20% ~58s
|+++++++++++ | 21% ~56s
|+++++++++++ | 22% ~55s
|++++++++++++ | 23% ~53s
|++++++++++++ | 24% ~52s
|+++++++++++++ | 25% ~50s
|+++++++++++++ | 26% ~49s
|++++++++++++++ | 27% ~47s
|++++++++++++++ | 28% ~46s
|+++++++++++++++ | 29% ~45s
|+++++++++++++++ | 30% ~44s
|++++++++++++++++ | 31% ~43s
|++++++++++++++++ | 32% ~41s
|+++++++++++++++++ | 33% ~40s
|+++++++++++++++++ | 34% ~40s
|++++++++++++++++++ | 35% ~39s
|++++++++++++++++++ | 36% ~38s
|+++++++++++++++++++ | 37% ~37s
|+++++++++++++++++++ | 38% ~36s
|++++++++++++++++++++ | 39% ~35s
|++++++++++++++++++++ | 40% ~35s
|+++++++++++++++++++++ | 41% ~34s
|+++++++++++++++++++++ | 42% ~33s
|++++++++++++++++++++++ | 43% ~32s
|++++++++++++++++++++++ | 44% ~31s
|+++++++++++++++++++++++ | 45% ~31s
|+++++++++++++++++++++++ | 46% ~30s
|++++++++++++++++++++++++ | 47% ~29s
|++++++++++++++++++++++++ | 48% ~29s
|+++++++++++++++++++++++++ | 49% ~28s
|+++++++++++++++++++++++++ | 50% ~27s
|++++++++++++++++++++++++++ | 51% ~27s
|++++++++++++++++++++++++++ | 52% ~26s
|+++++++++++++++++++++++++++ | 53% ~26s
|+++++++++++++++++++++++++++ | 54% ~25s
|++++++++++++++++++++++++++++ | 55% ~24s
|++++++++++++++++++++++++++++ | 56% ~24s
|+++++++++++++++++++++++++++++ | 57% ~23s
|+++++++++++++++++++++++++++++ | 58% ~22s
|++++++++++++++++++++++++++++++ | 59% ~22s
|++++++++++++++++++++++++++++++ | 60% ~21s
|+++++++++++++++++++++++++++++++ | 61% ~21s
|+++++++++++++++++++++++++++++++ | 62% ~20s
|++++++++++++++++++++++++++++++++ | 63% ~19s
|++++++++++++++++++++++++++++++++ | 64% ~19s
|+++++++++++++++++++++++++++++++++ | 65% ~18s
|+++++++++++++++++++++++++++++++++ | 66% ~18s
|++++++++++++++++++++++++++++++++++ | 67% ~17s
|++++++++++++++++++++++++++++++++++ | 68% ~17s
|+++++++++++++++++++++++++++++++++++ | 69% ~16s
|+++++++++++++++++++++++++++++++++++ | 70% ~15s
|++++++++++++++++++++++++++++++++++++ | 71% ~15s
|++++++++++++++++++++++++++++++++++++ | 72% ~14s
|+++++++++++++++++++++++++++++++++++++ | 73% ~14s
|+++++++++++++++++++++++++++++++++++++ | 74% ~13s
|++++++++++++++++++++++++++++++++++++++ | 75% ~13s
|++++++++++++++++++++++++++++++++++++++ | 76% ~12s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~12s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~11s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~11s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~10s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~10s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~09s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~09s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~08s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~07s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~07s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~06s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~05s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 49s
| | 0 % ~calculating
|+ | 1 % ~17s
|++ | 2 % ~18s
|++ | 3 % ~17s
|+++ | 4 % ~17s
|+++ | 5 % ~17s
|++++ | 6 % ~17s
|++++ | 7 % ~17s
|+++++ | 8 % ~17s
|+++++ | 9 % ~17s
|++++++ | 11% ~16s
|++++++ | 12% ~16s
|+++++++ | 13% ~16s
|+++++++ | 14% ~16s
|++++++++ | 15% ~16s
|++++++++ | 16% ~16s
|+++++++++ | 17% ~16s
|+++++++++ | 18% ~15s
|++++++++++ | 19% ~15s
|++++++++++ | 20% ~15s
|+++++++++++ | 21% ~15s
|++++++++++++ | 22% ~15s
|++++++++++++ | 23% ~15s
|+++++++++++++ | 24% ~14s
|+++++++++++++ | 25% ~14s
|++++++++++++++ | 26% ~14s
|++++++++++++++ | 27% ~14s
|+++++++++++++++ | 28% ~14s
|+++++++++++++++ | 29% ~14s
|++++++++++++++++ | 31% ~14s
|++++++++++++++++ | 32% ~13s
|+++++++++++++++++ | 33% ~13s
|+++++++++++++++++ | 34% ~13s
|++++++++++++++++++ | 35% ~13s
|++++++++++++++++++ | 36% ~12s
|+++++++++++++++++++ | 37% ~12s
|+++++++++++++++++++ | 38% ~12s
|++++++++++++++++++++ | 39% ~12s
|++++++++++++++++++++ | 40% ~12s
|+++++++++++++++++++++ | 41% ~11s
|++++++++++++++++++++++ | 42% ~11s
|++++++++++++++++++++++ | 43% ~11s
|+++++++++++++++++++++++ | 44% ~11s
|+++++++++++++++++++++++ | 45% ~10s
|++++++++++++++++++++++++ | 46% ~10s
|++++++++++++++++++++++++ | 47% ~10s
|+++++++++++++++++++++++++ | 48% ~10s
|+++++++++++++++++++++++++ | 49% ~10s
|++++++++++++++++++++++++++ | 51% ~09s
|++++++++++++++++++++++++++ | 52% ~09s
|+++++++++++++++++++++++++++ | 53% ~09s
|+++++++++++++++++++++++++++ | 54% ~09s
|++++++++++++++++++++++++++++ | 55% ~09s
|++++++++++++++++++++++++++++ | 56% ~08s
|+++++++++++++++++++++++++++++ | 57% ~08s
|+++++++++++++++++++++++++++++ | 58% ~08s
|++++++++++++++++++++++++++++++ | 59% ~08s
|++++++++++++++++++++++++++++++ | 60% ~08s
|+++++++++++++++++++++++++++++++ | 61% ~07s
|++++++++++++++++++++++++++++++++ | 62% ~07s
|++++++++++++++++++++++++++++++++ | 63% ~07s
|+++++++++++++++++++++++++++++++++ | 64% ~07s
|+++++++++++++++++++++++++++++++++ | 65% ~07s
|++++++++++++++++++++++++++++++++++ | 66% ~06s
|++++++++++++++++++++++++++++++++++ | 67% ~06s
|+++++++++++++++++++++++++++++++++++ | 68% ~06s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|++++++++++++++++++++++++++++++++++++ | 71% ~06s
|++++++++++++++++++++++++++++++++++++ | 72% ~05s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|+++++++++++++++++++++++++++++++++++++ | 74% ~05s
|++++++++++++++++++++++++++++++++++++++ | 75% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 19s
| | 0 % ~calculating
|+ | 1 % ~30s
|++ | 2 % ~27s
|++ | 3 % ~25s
|+++ | 4 % ~24s
|+++ | 5 % ~22s
|++++ | 6 % ~21s
|++++ | 7 % ~20s
|+++++ | 8 % ~20s
|+++++ | 9 % ~19s
|++++++ | 11% ~19s
|++++++ | 12% ~18s
|+++++++ | 13% ~18s
|+++++++ | 14% ~17s
|++++++++ | 15% ~17s
|++++++++ | 16% ~17s
|+++++++++ | 17% ~17s
|+++++++++ | 18% ~16s
|++++++++++ | 19% ~16s
|++++++++++ | 20% ~16s
|+++++++++++ | 21% ~16s
|++++++++++++ | 22% ~15s
|++++++++++++ | 23% ~15s
|+++++++++++++ | 24% ~15s
|+++++++++++++ | 25% ~15s
|++++++++++++++ | 26% ~15s
|++++++++++++++ | 27% ~14s
|+++++++++++++++ | 28% ~14s
|+++++++++++++++ | 29% ~14s
|++++++++++++++++ | 31% ~14s
|++++++++++++++++ | 32% ~14s
|+++++++++++++++++ | 33% ~14s
|+++++++++++++++++ | 34% ~14s
|++++++++++++++++++ | 35% ~13s
|++++++++++++++++++ | 36% ~13s
|+++++++++++++++++++ | 37% ~13s
|+++++++++++++++++++ | 38% ~13s
|++++++++++++++++++++ | 39% ~12s
|++++++++++++++++++++ | 40% ~12s
|+++++++++++++++++++++ | 41% ~12s
|++++++++++++++++++++++ | 42% ~12s
|++++++++++++++++++++++ | 43% ~12s
|+++++++++++++++++++++++ | 44% ~11s
|+++++++++++++++++++++++ | 45% ~11s
|++++++++++++++++++++++++ | 46% ~11s
|++++++++++++++++++++++++ | 47% ~11s
|+++++++++++++++++++++++++ | 48% ~10s
|+++++++++++++++++++++++++ | 49% ~10s
|++++++++++++++++++++++++++ | 51% ~10s
|++++++++++++++++++++++++++ | 52% ~10s
|+++++++++++++++++++++++++++ | 53% ~10s
|+++++++++++++++++++++++++++ | 54% ~09s
|++++++++++++++++++++++++++++ | 55% ~09s
|++++++++++++++++++++++++++++ | 56% ~09s
|+++++++++++++++++++++++++++++ | 57% ~09s
|+++++++++++++++++++++++++++++ | 58% ~09s
|++++++++++++++++++++++++++++++ | 59% ~08s
|++++++++++++++++++++++++++++++ | 60% ~08s
|+++++++++++++++++++++++++++++++ | 61% ~08s
|++++++++++++++++++++++++++++++++ | 62% ~08s
|++++++++++++++++++++++++++++++++ | 63% ~07s
|+++++++++++++++++++++++++++++++++ | 64% ~07s
|+++++++++++++++++++++++++++++++++ | 65% ~07s
|++++++++++++++++++++++++++++++++++ | 66% ~07s
|++++++++++++++++++++++++++++++++++ | 67% ~07s
|+++++++++++++++++++++++++++++++++++ | 68% ~06s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|++++++++++++++++++++++++++++++++++++ | 71% ~06s
|++++++++++++++++++++++++++++++++++++ | 72% ~06s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|+++++++++++++++++++++++++++++++++++++ | 74% ~05s
|++++++++++++++++++++++++++++++++++++++ | 75% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 20s
| | 0 % ~calculating
|+ | 1 % ~27s
|++ | 2 % ~26s
|++ | 3 % ~25s
|+++ | 4 % ~25s
|+++ | 5 % ~24s
|++++ | 6 % ~24s
|++++ | 7 % ~23s
|+++++ | 8 % ~23s
|+++++ | 9 % ~22s
|++++++ | 10% ~22s
|++++++ | 11% ~22s
|+++++++ | 12% ~21s
|+++++++ | 14% ~21s
|++++++++ | 15% ~21s
|++++++++ | 16% ~21s
|+++++++++ | 17% ~20s
|+++++++++ | 18% ~20s
|++++++++++ | 19% ~20s
|++++++++++ | 20% ~21s
|+++++++++++ | 21% ~20s
|+++++++++++ | 22% ~20s
|++++++++++++ | 23% ~19s
|++++++++++++ | 24% ~19s
|+++++++++++++ | 25% ~19s
|++++++++++++++ | 26% ~18s
|++++++++++++++ | 27% ~18s
|+++++++++++++++ | 28% ~18s
|+++++++++++++++ | 29% ~18s
|++++++++++++++++ | 30% ~17s
|++++++++++++++++ | 31% ~17s
|+++++++++++++++++ | 32% ~17s
|+++++++++++++++++ | 33% ~17s
|++++++++++++++++++ | 34% ~16s
|++++++++++++++++++ | 35% ~16s
|+++++++++++++++++++ | 36% ~16s
|+++++++++++++++++++ | 38% ~16s
|++++++++++++++++++++ | 39% ~15s
|++++++++++++++++++++ | 40% ~15s
|+++++++++++++++++++++ | 41% ~15s
|+++++++++++++++++++++ | 42% ~15s
|++++++++++++++++++++++ | 43% ~14s
|++++++++++++++++++++++ | 44% ~14s
|+++++++++++++++++++++++ | 45% ~14s
|+++++++++++++++++++++++ | 46% ~14s
|++++++++++++++++++++++++ | 47% ~13s
|++++++++++++++++++++++++ | 48% ~13s
|+++++++++++++++++++++++++ | 49% ~13s
|+++++++++++++++++++++++++ | 50% ~13s
|++++++++++++++++++++++++++ | 51% ~12s
|+++++++++++++++++++++++++++ | 52% ~12s
|+++++++++++++++++++++++++++ | 53% ~12s
|++++++++++++++++++++++++++++ | 54% ~11s
|++++++++++++++++++++++++++++ | 55% ~11s
|+++++++++++++++++++++++++++++ | 56% ~11s
|+++++++++++++++++++++++++++++ | 57% ~11s
|++++++++++++++++++++++++++++++ | 58% ~10s
|++++++++++++++++++++++++++++++ | 59% ~10s
|+++++++++++++++++++++++++++++++ | 60% ~10s
|+++++++++++++++++++++++++++++++ | 61% ~10s
|++++++++++++++++++++++++++++++++ | 62% ~09s
|++++++++++++++++++++++++++++++++ | 64% ~09s
|+++++++++++++++++++++++++++++++++ | 65% ~09s
|+++++++++++++++++++++++++++++++++ | 66% ~09s
|++++++++++++++++++++++++++++++++++ | 67% ~08s
|++++++++++++++++++++++++++++++++++ | 68% ~08s
|+++++++++++++++++++++++++++++++++++ | 69% ~08s
|+++++++++++++++++++++++++++++++++++ | 70% ~08s
|++++++++++++++++++++++++++++++++++++ | 71% ~07s
|++++++++++++++++++++++++++++++++++++ | 72% ~07s
|+++++++++++++++++++++++++++++++++++++ | 73% ~07s
|+++++++++++++++++++++++++++++++++++++ | 74% ~06s
|++++++++++++++++++++++++++++++++++++++ | 75% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 25s
| | 0 % ~calculating
|+ | 1 % ~32s
|+ | 2 % ~37s
|++ | 3 % ~37s
|++ | 4 % ~36s
|+++ | 5 % ~36s
|+++ | 6 % ~34s
|++++ | 7 % ~33s
|++++ | 8 % ~33s
|+++++ | 9 % ~33s
|+++++ | 10% ~32s
|++++++ | 11% ~31s
|++++++ | 12% ~31s
|+++++++ | 13% ~31s
|+++++++ | 14% ~30s
|++++++++ | 15% ~30s
|++++++++ | 16% ~30s
|+++++++++ | 17% ~29s
|+++++++++ | 18% ~29s
|++++++++++ | 19% ~28s
|++++++++++ | 20% ~28s
|+++++++++++ | 21% ~27s
|+++++++++++ | 22% ~27s
|++++++++++++ | 23% ~26s
|++++++++++++ | 24% ~26s
|+++++++++++++ | 25% ~26s
|+++++++++++++ | 26% ~26s
|++++++++++++++ | 27% ~25s
|++++++++++++++ | 28% ~25s
|+++++++++++++++ | 29% ~24s
|+++++++++++++++ | 30% ~24s
|++++++++++++++++ | 31% ~24s
|++++++++++++++++ | 32% ~23s
|+++++++++++++++++ | 33% ~23s
|+++++++++++++++++ | 34% ~22s
|++++++++++++++++++ | 35% ~22s
|++++++++++++++++++ | 36% ~22s
|+++++++++++++++++++ | 37% ~21s
|+++++++++++++++++++ | 38% ~21s
|++++++++++++++++++++ | 39% ~20s
|++++++++++++++++++++ | 40% ~20s
|+++++++++++++++++++++ | 41% ~20s
|+++++++++++++++++++++ | 42% ~19s
|++++++++++++++++++++++ | 43% ~19s
|++++++++++++++++++++++ | 44% ~19s
|+++++++++++++++++++++++ | 45% ~18s
|+++++++++++++++++++++++ | 46% ~18s
|++++++++++++++++++++++++ | 47% ~18s
|++++++++++++++++++++++++ | 48% ~17s
|+++++++++++++++++++++++++ | 49% ~17s
|+++++++++++++++++++++++++ | 50% ~16s
|++++++++++++++++++++++++++ | 51% ~16s
|++++++++++++++++++++++++++ | 52% ~16s
|+++++++++++++++++++++++++++ | 53% ~15s
|+++++++++++++++++++++++++++ | 54% ~15s
|++++++++++++++++++++++++++++ | 55% ~15s
|++++++++++++++++++++++++++++ | 56% ~14s
|+++++++++++++++++++++++++++++ | 57% ~14s
|+++++++++++++++++++++++++++++ | 58% ~14s
|++++++++++++++++++++++++++++++ | 59% ~13s
|++++++++++++++++++++++++++++++ | 60% ~13s
|+++++++++++++++++++++++++++++++ | 61% ~13s
|+++++++++++++++++++++++++++++++ | 62% ~12s
|++++++++++++++++++++++++++++++++ | 63% ~12s
|++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~11s
|+++++++++++++++++++++++++++++++++ | 66% ~11s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|++++++++++++++++++++++++++++++++++ | 68% ~10s
|+++++++++++++++++++++++++++++++++++ | 69% ~10s
|+++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~09s
|++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|+++++++++++++++++++++++++++++++++++++ | 74% ~08s
|++++++++++++++++++++++++++++++++++++++ | 75% ~08s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~07s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 32s
| | 0 % ~calculating
|+ | 1 % ~24s
|++ | 2 % ~24s
|++ | 3 % ~25s
|+++ | 4 % ~24s
|+++ | 5 % ~25s
|++++ | 6 % ~25s
|++++ | 7 % ~24s
|+++++ | 8 % ~24s
|+++++ | 9 % ~24s
|++++++ | 10% ~23s
|++++++ | 11% ~23s
|+++++++ | 12% ~23s
|+++++++ | 14% ~23s
|++++++++ | 15% ~24s
|++++++++ | 16% ~23s
|+++++++++ | 17% ~23s
|+++++++++ | 18% ~22s
|++++++++++ | 19% ~22s
|++++++++++ | 20% ~22s
|+++++++++++ | 21% ~21s
|+++++++++++ | 22% ~21s
|++++++++++++ | 23% ~21s
|++++++++++++ | 24% ~20s
|+++++++++++++ | 25% ~20s
|++++++++++++++ | 26% ~20s
|++++++++++++++ | 27% ~19s
|+++++++++++++++ | 28% ~19s
|+++++++++++++++ | 29% ~19s
|++++++++++++++++ | 30% ~19s
|++++++++++++++++ | 31% ~18s
|+++++++++++++++++ | 32% ~18s
|+++++++++++++++++ | 33% ~18s
|++++++++++++++++++ | 34% ~17s
|++++++++++++++++++ | 35% ~17s
|+++++++++++++++++++ | 36% ~17s
|+++++++++++++++++++ | 38% ~16s
|++++++++++++++++++++ | 39% ~16s
|++++++++++++++++++++ | 40% ~16s
|+++++++++++++++++++++ | 41% ~16s
|+++++++++++++++++++++ | 42% ~15s
|++++++++++++++++++++++ | 43% ~15s
|++++++++++++++++++++++ | 44% ~15s
|+++++++++++++++++++++++ | 45% ~14s
|+++++++++++++++++++++++ | 46% ~14s
|++++++++++++++++++++++++ | 47% ~14s
|++++++++++++++++++++++++ | 48% ~14s
|+++++++++++++++++++++++++ | 49% ~13s
|+++++++++++++++++++++++++ | 50% ~13s
|++++++++++++++++++++++++++ | 51% ~13s
|+++++++++++++++++++++++++++ | 52% ~12s
|+++++++++++++++++++++++++++ | 53% ~12s
|++++++++++++++++++++++++++++ | 54% ~12s
|++++++++++++++++++++++++++++ | 55% ~12s
|+++++++++++++++++++++++++++++ | 56% ~11s
|+++++++++++++++++++++++++++++ | 57% ~11s
|++++++++++++++++++++++++++++++ | 58% ~11s
|++++++++++++++++++++++++++++++ | 59% ~11s
|+++++++++++++++++++++++++++++++ | 60% ~10s
|+++++++++++++++++++++++++++++++ | 61% ~10s
|++++++++++++++++++++++++++++++++ | 62% ~10s
|++++++++++++++++++++++++++++++++ | 64% ~09s
|+++++++++++++++++++++++++++++++++ | 65% ~09s
|+++++++++++++++++++++++++++++++++ | 66% ~09s
|++++++++++++++++++++++++++++++++++ | 67% ~09s
|++++++++++++++++++++++++++++++++++ | 68% ~08s
|+++++++++++++++++++++++++++++++++++ | 69% ~08s
|+++++++++++++++++++++++++++++++++++ | 70% ~08s
|++++++++++++++++++++++++++++++++++++ | 71% ~08s
|++++++++++++++++++++++++++++++++++++ | 72% ~07s
|+++++++++++++++++++++++++++++++++++++ | 73% ~07s
|+++++++++++++++++++++++++++++++++++++ | 74% ~07s
|++++++++++++++++++++++++++++++++++++++ | 75% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 26s
| | 0 % ~calculating
|+ | 1 % ~19s
|++ | 2 % ~19s
|++ | 3 % ~19s
|+++ | 4 % ~19s
|+++ | 5 % ~19s
|++++ | 6 % ~18s
|++++ | 7 % ~18s
|+++++ | 8 % ~18s
|+++++ | 9 % ~17s
|++++++ | 10% ~17s
|++++++ | 11% ~17s
|+++++++ | 12% ~17s
|+++++++ | 13% ~16s
|++++++++ | 14% ~16s
|++++++++ | 15% ~16s
|+++++++++ | 16% ~16s
|+++++++++ | 17% ~16s
|++++++++++ | 18% ~15s
|++++++++++ | 19% ~15s
|+++++++++++ | 20% ~15s
|+++++++++++ | 21% ~15s
|++++++++++++ | 22% ~15s
|++++++++++++ | 23% ~15s
|+++++++++++++ | 24% ~15s
|+++++++++++++ | 26% ~15s
|++++++++++++++ | 27% ~15s
|++++++++++++++ | 28% ~14s
|+++++++++++++++ | 29% ~14s
|+++++++++++++++ | 30% ~14s
|++++++++++++++++ | 31% ~14s
|++++++++++++++++ | 32% ~13s
|+++++++++++++++++ | 33% ~13s
|+++++++++++++++++ | 34% ~13s
|++++++++++++++++++ | 35% ~13s
|++++++++++++++++++ | 36% ~13s
|+++++++++++++++++++ | 37% ~12s
|+++++++++++++++++++ | 38% ~12s
|++++++++++++++++++++ | 39% ~12s
|++++++++++++++++++++ | 40% ~12s
|+++++++++++++++++++++ | 41% ~11s
|+++++++++++++++++++++ | 42% ~11s
|++++++++++++++++++++++ | 43% ~11s
|++++++++++++++++++++++ | 44% ~11s
|+++++++++++++++++++++++ | 45% ~11s
|+++++++++++++++++++++++ | 46% ~10s
|++++++++++++++++++++++++ | 47% ~10s
|++++++++++++++++++++++++ | 48% ~10s
|+++++++++++++++++++++++++ | 49% ~10s
|+++++++++++++++++++++++++ | 50% ~10s
|++++++++++++++++++++++++++ | 51% ~09s
|+++++++++++++++++++++++++++ | 52% ~09s
|+++++++++++++++++++++++++++ | 53% ~09s
|++++++++++++++++++++++++++++ | 54% ~09s
|++++++++++++++++++++++++++++ | 55% ~09s
|+++++++++++++++++++++++++++++ | 56% ~08s
|+++++++++++++++++++++++++++++ | 57% ~08s
|++++++++++++++++++++++++++++++ | 58% ~08s
|++++++++++++++++++++++++++++++ | 59% ~08s
|+++++++++++++++++++++++++++++++ | 60% ~08s
|+++++++++++++++++++++++++++++++ | 61% ~07s
|++++++++++++++++++++++++++++++++ | 62% ~07s
|++++++++++++++++++++++++++++++++ | 63% ~07s
|+++++++++++++++++++++++++++++++++ | 64% ~07s
|+++++++++++++++++++++++++++++++++ | 65% ~07s
|++++++++++++++++++++++++++++++++++ | 66% ~06s
|++++++++++++++++++++++++++++++++++ | 67% ~06s
|+++++++++++++++++++++++++++++++++++ | 68% ~06s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|++++++++++++++++++++++++++++++++++++ | 70% ~06s
|++++++++++++++++++++++++++++++++++++ | 71% ~05s
|+++++++++++++++++++++++++++++++++++++ | 72% ~05s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|++++++++++++++++++++++++++++++++++++++ | 74% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 19s
| | 0 % ~calculating
|+ | 1 % ~19s
|++ | 2 % ~19s
|++ | 3 % ~19s
|+++ | 4 % ~19s
|+++ | 5 % ~19s
|++++ | 6 % ~19s
|++++ | 7 % ~19s
|+++++ | 8 % ~21s
|+++++ | 9 % ~21s
|++++++ | 11% ~20s
|++++++ | 12% ~20s
|+++++++ | 13% ~19s
|+++++++ | 14% ~19s
|++++++++ | 15% ~19s
|++++++++ | 16% ~18s
|+++++++++ | 17% ~18s
|+++++++++ | 18% ~18s
|++++++++++ | 19% ~17s
|++++++++++ | 20% ~17s
|+++++++++++ | 21% ~17s
|++++++++++++ | 22% ~17s
|++++++++++++ | 23% ~16s
|+++++++++++++ | 24% ~16s
|+++++++++++++ | 25% ~16s
|++++++++++++++ | 26% ~16s
|++++++++++++++ | 27% ~15s
|+++++++++++++++ | 28% ~15s
|+++++++++++++++ | 29% ~15s
|++++++++++++++++ | 31% ~15s
|++++++++++++++++ | 32% ~14s
|+++++++++++++++++ | 33% ~14s
|+++++++++++++++++ | 34% ~14s
|++++++++++++++++++ | 35% ~14s
|++++++++++++++++++ | 36% ~14s
|+++++++++++++++++++ | 37% ~13s
|+++++++++++++++++++ | 38% ~13s
|++++++++++++++++++++ | 39% ~13s
|++++++++++++++++++++ | 40% ~13s
|+++++++++++++++++++++ | 41% ~12s
|++++++++++++++++++++++ | 42% ~12s
|++++++++++++++++++++++ | 43% ~12s
|+++++++++++++++++++++++ | 44% ~12s
|+++++++++++++++++++++++ | 45% ~12s
|++++++++++++++++++++++++ | 46% ~11s
|++++++++++++++++++++++++ | 47% ~11s
|+++++++++++++++++++++++++ | 48% ~11s
|+++++++++++++++++++++++++ | 49% ~11s
|++++++++++++++++++++++++++ | 51% ~10s
|++++++++++++++++++++++++++ | 52% ~10s
|+++++++++++++++++++++++++++ | 53% ~10s
|+++++++++++++++++++++++++++ | 54% ~10s
|++++++++++++++++++++++++++++ | 55% ~10s
|++++++++++++++++++++++++++++ | 56% ~10s
|+++++++++++++++++++++++++++++ | 57% ~09s
|+++++++++++++++++++++++++++++ | 58% ~09s
|++++++++++++++++++++++++++++++ | 59% ~09s
|++++++++++++++++++++++++++++++ | 60% ~09s
|+++++++++++++++++++++++++++++++ | 61% ~08s
|++++++++++++++++++++++++++++++++ | 62% ~08s
|++++++++++++++++++++++++++++++++ | 63% ~08s
|+++++++++++++++++++++++++++++++++ | 64% ~08s
|+++++++++++++++++++++++++++++++++ | 65% ~07s
|++++++++++++++++++++++++++++++++++ | 66% ~07s
|++++++++++++++++++++++++++++++++++ | 67% ~07s
|+++++++++++++++++++++++++++++++++++ | 68% ~07s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|++++++++++++++++++++++++++++++++++++ | 71% ~06s
|++++++++++++++++++++++++++++++++++++ | 72% ~06s
|+++++++++++++++++++++++++++++++++++++ | 73% ~06s
|+++++++++++++++++++++++++++++++++++++ | 74% ~06s
|++++++++++++++++++++++++++++++++++++++ | 75% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 21s
| | 0 % ~calculating
|+ | 1 % ~44s
|++ | 2 % ~42s
|++ | 3 % ~41s
|+++ | 4 % ~38s
|+++ | 5 % ~38s
|++++ | 6 % ~37s
|++++ | 7 % ~37s
|+++++ | 8 % ~37s
|+++++ | 9 % ~36s
|++++++ | 10% ~36s
|++++++ | 11% ~35s
|+++++++ | 12% ~35s
|+++++++ | 13% ~34s
|++++++++ | 14% ~35s
|++++++++ | 15% ~35s
|+++++++++ | 16% ~35s
|+++++++++ | 17% ~34s
|++++++++++ | 18% ~34s
|++++++++++ | 19% ~33s
|+++++++++++ | 20% ~33s
|+++++++++++ | 21% ~32s
|++++++++++++ | 22% ~32s
|++++++++++++ | 23% ~31s
|+++++++++++++ | 24% ~31s
|+++++++++++++ | 25% ~30s
|++++++++++++++ | 26% ~30s
|++++++++++++++ | 27% ~30s
|+++++++++++++++ | 28% ~29s
|+++++++++++++++ | 29% ~29s
|++++++++++++++++ | 30% ~28s
|++++++++++++++++ | 31% ~28s
|+++++++++++++++++ | 32% ~27s
|+++++++++++++++++ | 33% ~27s
|++++++++++++++++++ | 34% ~26s
|++++++++++++++++++ | 35% ~26s
|+++++++++++++++++++ | 36% ~26s
|+++++++++++++++++++ | 37% ~25s
|++++++++++++++++++++ | 38% ~25s
|++++++++++++++++++++ | 39% ~25s
|+++++++++++++++++++++ | 40% ~24s
|+++++++++++++++++++++ | 41% ~24s
|++++++++++++++++++++++ | 42% ~23s
|++++++++++++++++++++++ | 43% ~23s
|+++++++++++++++++++++++ | 44% ~22s
|+++++++++++++++++++++++ | 45% ~22s
|++++++++++++++++++++++++ | 46% ~22s
|++++++++++++++++++++++++ | 47% ~21s
|+++++++++++++++++++++++++ | 48% ~21s
|+++++++++++++++++++++++++ | 49% ~20s
|++++++++++++++++++++++++++ | 51% ~20s
|++++++++++++++++++++++++++ | 52% ~19s
|+++++++++++++++++++++++++++ | 53% ~19s
|+++++++++++++++++++++++++++ | 54% ~19s
|++++++++++++++++++++++++++++ | 55% ~18s
|++++++++++++++++++++++++++++ | 56% ~18s
|+++++++++++++++++++++++++++++ | 57% ~17s
|+++++++++++++++++++++++++++++ | 58% ~17s
|++++++++++++++++++++++++++++++ | 59% ~16s
|++++++++++++++++++++++++++++++ | 60% ~16s
|+++++++++++++++++++++++++++++++ | 61% ~16s
|+++++++++++++++++++++++++++++++ | 62% ~15s
|++++++++++++++++++++++++++++++++ | 63% ~15s
|++++++++++++++++++++++++++++++++ | 64% ~15s
|+++++++++++++++++++++++++++++++++ | 65% ~14s
|+++++++++++++++++++++++++++++++++ | 66% ~14s
|++++++++++++++++++++++++++++++++++ | 67% ~13s
|++++++++++++++++++++++++++++++++++ | 68% ~13s
|+++++++++++++++++++++++++++++++++++ | 69% ~13s
|+++++++++++++++++++++++++++++++++++ | 70% ~12s
|++++++++++++++++++++++++++++++++++++ | 71% ~12s
|++++++++++++++++++++++++++++++++++++ | 72% ~11s
|+++++++++++++++++++++++++++++++++++++ | 73% ~11s
|+++++++++++++++++++++++++++++++++++++ | 74% ~11s
|++++++++++++++++++++++++++++++++++++++ | 75% ~10s
|++++++++++++++++++++++++++++++++++++++ | 76% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~09s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 40s
| | 0 % ~calculating
|+ | 1 % ~57s
|++ | 2 % ~45s
|++ | 3 % ~40s
|+++ | 4 % ~37s
|+++ | 5 % ~35s
|++++ | 6 % ~34s
|++++ | 7 % ~33s
|+++++ | 8 % ~32s
|+++++ | 9 % ~31s
|++++++ | 10% ~31s
|++++++ | 11% ~30s
|+++++++ | 12% ~30s
|+++++++ | 13% ~29s
|++++++++ | 14% ~29s
|++++++++ | 15% ~29s
|+++++++++ | 16% ~28s
|+++++++++ | 17% ~28s
|++++++++++ | 18% ~27s
|++++++++++ | 19% ~27s
|+++++++++++ | 20% ~26s
|+++++++++++ | 21% ~26s
|++++++++++++ | 22% ~26s
|++++++++++++ | 23% ~25s
|+++++++++++++ | 24% ~25s
|+++++++++++++ | 26% ~24s
|++++++++++++++ | 27% ~24s
|++++++++++++++ | 28% ~24s
|+++++++++++++++ | 29% ~23s
|+++++++++++++++ | 30% ~23s
|++++++++++++++++ | 31% ~23s
|++++++++++++++++ | 32% ~23s
|+++++++++++++++++ | 33% ~22s
|+++++++++++++++++ | 34% ~22s
|++++++++++++++++++ | 35% ~21s
|++++++++++++++++++ | 36% ~21s
|+++++++++++++++++++ | 37% ~21s
|+++++++++++++++++++ | 38% ~20s
|++++++++++++++++++++ | 39% ~20s
|++++++++++++++++++++ | 40% ~20s
|+++++++++++++++++++++ | 41% ~19s
|+++++++++++++++++++++ | 42% ~19s
|++++++++++++++++++++++ | 43% ~19s
|++++++++++++++++++++++ | 44% ~18s
|+++++++++++++++++++++++ | 45% ~18s
|+++++++++++++++++++++++ | 46% ~18s
|++++++++++++++++++++++++ | 47% ~17s
|++++++++++++++++++++++++ | 48% ~17s
|+++++++++++++++++++++++++ | 49% ~17s
|+++++++++++++++++++++++++ | 50% ~16s
|++++++++++++++++++++++++++ | 51% ~16s
|+++++++++++++++++++++++++++ | 52% ~16s
|+++++++++++++++++++++++++++ | 53% ~15s
|++++++++++++++++++++++++++++ | 54% ~15s
|++++++++++++++++++++++++++++ | 55% ~15s
|+++++++++++++++++++++++++++++ | 56% ~14s
|+++++++++++++++++++++++++++++ | 57% ~14s
|++++++++++++++++++++++++++++++ | 58% ~14s
|++++++++++++++++++++++++++++++ | 59% ~14s
|+++++++++++++++++++++++++++++++ | 60% ~13s
|+++++++++++++++++++++++++++++++ | 61% ~13s
|++++++++++++++++++++++++++++++++ | 62% ~12s
|++++++++++++++++++++++++++++++++ | 63% ~12s
|+++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~11s
|++++++++++++++++++++++++++++++++++ | 66% ~11s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|+++++++++++++++++++++++++++++++++++ | 68% ~10s
|+++++++++++++++++++++++++++++++++++ | 69% ~10s
|++++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~09s
|+++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|++++++++++++++++++++++++++++++++++++++ | 74% ~08s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 33s
Display the top markers you computed above.
tiss.markers %>% group_by(cluster) %>% top_n(10, avg_logFC)
At a coarse level, we can use canonical markers to match the unbiased clustering to known cell types:
tiss <- StashIdent(object = tiss, save.name = "cluster.ids")
cluster.ids <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
cell_ontology_class <- c(
"endothelial cell",
'kidney collecting duct intercalated cell',
'epithelial cell of proximal tubule',
"kidney collecting duct principal cell",
"epithelial cell of proximal tubule",
'endothelial cell',
"kidney proximal straight tubule epithelial cell",
"kidney proximal straight tubule epithelial cell",
"macrophage",
"natural killer cell")
free_annotation <- rep(NA, max(as.numeric(tiss@ident)))
validate_cell_ontology(cell_ontology_class)
cell_ontology_id = convert_to_cell_ontology_id(cell_ontology_class)
tiss@meta.data['free_annotation'] <- as.character(plyr::mapvalues(x = tiss@ident, from = cluster.ids, to = free_annotation))
tiss@meta.data['cell_ontology_class'] <- as.character(plyr::mapvalues(x = tiss@ident, from = cluster.ids, to = cell_ontology_class))
tiss@meta.data['cell_ontology_id'] <- as.character(plyr::mapvalues(x = tiss@ident, from = cluster.ids, to = cell_ontology_id))
Color by metadata, like plate barcode, to check for batch effects.
TSNEPlot(object = tiss, do.return = TRUE, group.by = "plate.barcode")
Print a table showing the count of cells in each identity category from each plate.
table(as.character(tiss@ident), as.character(tiss@meta.data$plate.barcode))
B001717 B002775 MAA000545 MAA000752 MAA000801 MAA000922
0 5 11 16 7 23 9
1 20 17 1 3 21 3
2 10 7 12 6 20 5
3 5 8 9 14 18 4
4 3 3 13 15 18 5
5 40 7 3 2 1 2
6 23 5 1 4 18 2
7 3 8 11 6 10 7
8 8 2 1 8 17 3
9 6 3 2 0 3 0
We can repeat the above analysis on a subset of cells, defined using cluster IDs or some other metadata. This is a good way to drill down and find substructure.
# Subset data based on cluster id
subtiss <- SubsetData(object = tiss, ident.use = c(6,4,9,2), do.center = F, do.scale = F, cells.use = )
# To subset data based on cell_ontology_class or other metadata, you can explicitly pass cell names
# anno = 'exocrine cells'
# cells.to.use = tiss@cell.names[which(tiss@meta.data$cell_ontology_class == anno)]
# subtiss <- SubsetData(object = tiss, cells.use = cells.to.use, do.center = F, do.scale = F)
subtiss <- NormalizeData(object = subtiss)
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
subtiss <- ScaleData(object = subtiss, vars.to.regress = c("nReads", "percent.ribo","Rn45s"))
[1] "Regressing out nReads" "Regressing out percent.ribo" "Regressing out Rn45s"
|
| | 0%
|
|= | 1%
|
|== | 1%
|
|=== | 2%
|
|==== | 3%
|
|===== | 4%
|
|====== | 5%
|
|======= | 6%
|
|======== | 7%
|
|========= | 7%
|
|========== | 8%
|
|=========== | 9%
|
|============ | 10%
|
|============= | 10%
|
|============== | 11%
|
|============== | 12%
|
|=============== | 12%
|
|================ | 13%
|
|================= | 14%
|
|================== | 15%
|
|=================== | 15%
|
|==================== | 16%
|
|===================== | 17%
|
|====================== | 18%
|
|======================= | 18%
|
|======================== | 19%
|
|======================== | 20%
|
|========================= | 21%
|
|========================== | 21%
|
|=========================== | 22%
|
|============================ | 23%
|
|============================= | 24%
|
|============================== | 24%
|
|=============================== | 25%
|
|================================ | 26%
|
|================================= | 26%
|
|================================= | 27%
|
|================================== | 28%
|
|=================================== | 29%
|
|==================================== | 29%
|
|===================================== | 30%
|
|====================================== | 31%
|
|======================================= | 32%
|
|======================================== | 32%
|
|========================================= | 33%
|
|========================================== | 34%
|
|=========================================== | 35%
|
|============================================ | 36%
|
|============================================= | 37%
|
|============================================== | 38%
|
|=============================================== | 38%
|
|================================================ | 39%
|
|================================================= | 40%
|
|================================================== | 40%
|
|=================================================== | 41%
|
|==================================================== | 42%
|
|==================================================== | 43%
|
|===================================================== | 43%
|
|====================================================== | 44%
|
|======================================================= | 45%
|
|======================================================== | 46%
|
|========================================================= | 46%
|
|========================================================== | 47%
|
|=========================================================== | 48%
|
|============================================================ | 49%
|
|============================================================= | 49%
|
|============================================================== | 50%
|
|============================================================== | 51%
|
|=============================================================== | 51%
|
|================================================================ | 52%
|
|================================================================= | 53%
|
|================================================================== | 54%
|
|=================================================================== | 54%
|
|==================================================================== | 55%
|
|===================================================================== | 56%
|
|====================================================================== | 57%
|
|======================================================================= | 57%
|
|======================================================================= | 58%
|
|======================================================================== | 59%
|
|========================================================================= | 60%
|
|========================================================================== | 60%
|
|=========================================================================== | 61%
|
|============================================================================ | 62%
|
|============================================================================= | 62%
|
|============================================================================== | 63%
|
|=============================================================================== | 64%
|
|================================================================================ | 65%
|
|================================================================================= | 66%
|
|================================================================================== | 67%
|
|=================================================================================== | 68%
|
|==================================================================================== | 68%
|
|===================================================================================== | 69%
|
|====================================================================================== | 70%
|
|======================================================================================= | 71%
|
|======================================================================================== | 71%
|
|========================================================================================= | 72%
|
|========================================================================================== | 73%
|
|========================================================================================== | 74%
|
|=========================================================================================== | 74%
|
|============================================================================================ | 75%
|
|============================================================================================= | 76%
|
|============================================================================================== | 76%
|
|=============================================================================================== | 77%
|
|================================================================================================ | 78%
|
|================================================================================================= | 79%
|
|================================================================================================== | 79%
|
|=================================================================================================== | 80%
|
|=================================================================================================== | 81%
|
|==================================================================================================== | 82%
|
|===================================================================================================== | 82%
|
|====================================================================================================== | 83%
|
|======================================================================================================= | 84%
|
|======================================================================================================== | 85%
|
|========================================================================================================= | 85%
|
|========================================================================================================== | 86%
|
|=========================================================================================================== | 87%
|
|============================================================================================================ | 88%
|
|============================================================================================================= | 88%
|
|============================================================================================================= | 89%
|
|============================================================================================================== | 90%
|
|=============================================================================================================== | 90%
|
|================================================================================================================ | 91%
|
|================================================================================================================= | 92%
|
|================================================================================================================== | 93%
|
|=================================================================================================================== | 93%
|
|==================================================================================================================== | 94%
|
|===================================================================================================================== | 95%
|
|====================================================================================================================== | 96%
|
|======================================================================================================================= | 97%
|
|======================================================================================================================== | 98%
|
|========================================================================================================================= | 99%
|
|========================================================================================================================== | 99%
|
|===========================================================================================================================| 100%
[1] "Scaling data matrix"
|
| | 0%
|
|===========================================================================================================================| 100%
subtiss <- FindVariableGenes(object = subtiss, do.plot = TRUE, x.high.cutoff = Inf, y.cutoff = 0.8)
Calculating gene means
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
subtiss <- RunPCA(object = subtiss, pcs.compute = 20)
[1] "PC1"
[1] "Tcf7" "Frat1" "Pik3ip1" "Gatm" "Ankrd24" "Zfand2a" "Il7r" "Adcy3"
[9] "Cd63" "4632428N05Rik" "Inpp1" "Zfc3h1" "Tnrc6a" "Oxct1" "Yipf2" "Ermp1"
[17] "Dnajc18" "Spp1" "Hao2" "Eid1" "Msl3" "Slc5a3" "Fam49a" "Cep97"
[25] "L3mbtl3" "Gm6225" "Pms1" "Ankrd16" "Fam160b1" "Gnl3"
[1] ""
[1] "Nkg7" "AW112010" "Anxa2" "Arhgdib" "Selplg" "Tmsb4x" "Il2rb" "Coro1a" "B4galnt1" "H2-Q6" "Psmb8"
[12] "Sla" "Gata3" "Esyt1" "Hmha1" "Rac2" "Gem" "Itgb2" "Ccl5" "Anxa6" "Ifngr1" "Gimap3"
[23] "Laptm5" "Cd48" "Fgl2" "Cd7" "Vim" "Fxyd5" "Tspan32" "Lsp1"
[1] ""
[1] ""
[1] "PC2"
[1] "Cd79a" "Cd79b" "Cd74" "Ly6d" "Ms4a1" "H2-Aa" "Prkcb" "H2-Eb1" "Cnp" "Hvcn1" "Ltb" "Faim3"
[13] "H2-Ab1" "Fli1" "Cd72" "Spib" "H2-DMb2" "Cd69" "Ccr7" "Mef2c" "Cd22" "Filip1l" "Ebf1" "Lrmp"
[25] "Cd83" "Dok3" "Pik3c2b" "Rnase6" "Vpreb3" "H2-Ob"
[1] ""
[1] "Ccnd2" "Fxyd5" "Lat" "Vps37b" "Cd28" "Itgb7" "Lck" "Tnfaip3"
[9] "Cd3g" "Lcp2" "Cd3d" "Vav1" "Frat1" "Tcf7" "Ms4a4b" "AW112010"
[17] "A630001G21Rik" "Emb" "Cd8b1" "Zap70" "Itgb2" "Ms4a6b" "Bcl2" "Nkg7"
[25] "Ctsw" "Ccl5" "Ctsc" "Anxa2" "Gimap3" "S1pr1"
[1] ""
[1] ""
[1] "PC3"
[1] "Unc93b1" "Crip1" "Gramd3" "Pim2" "Ralgps2" "Tmem39b" "Atic" "Tgif1"
[9] "Kdm6b" "Hsf2" "Papd4" "Lat2" "Btbd7" "Fcrl1" "Fen1" "Spib"
[17] "Socs5" "Utp18" "Scmh1" "Zbtb2" "Zfp296" "Ankrd37" "1110031I02Rik" "Dffb"
[25] "Rasgrp1" "Adck2" "Ccnj" "Usp42" "Zc3h10" "B4galt7"
[1] ""
[1] "Grap" "Rhof" "Elmo1" "Rhoh" "Lpar6" "H2-T24" "Faim3" "Sept6"
[9] "Cd83" "Tmem209" "H2-DMa" "Rfc4" "Ly9" "Sell" "Gimap7" "Ep300"
[17] "Shisa5" "Hltf" "Slain1" "Rftn1" "Akna" "Ppp1r12c" "Mical1" "Mif4gd"
[25] "Ucp2" "Zfp263" "A830007P12Rik" "Asb6" "Mapkapk3" "Pcif1"
[1] ""
[1] ""
[1] "PC4"
[1] "Sell" "Cxcr5" "Ctss" "Slfn2" "Fcer2a" "Blk" "Ep300" "Cmtm7" "Mef2c" "Gimap7"
[11] "Serpinb1a" "H2-Ob" "Ly9" "Prkd2" "Tmem209" "Rnf20" "Cd69" "Gm14446" "Cd55" "Eral1"
[21] "Akna" "Cd72" "Thap11" "Fam53b" "Myst3" "Dok3" "Nrm" "Pml" "Usp25" "Bank1"
[1] ""
[1] "Ptpn4" "2810013P06Rik" "Gpr171" "Pcif1" "Rcsd1" "Arid4b" "Hltf" "Gm6225"
[9] "Rgs19" "Asb6" "A830007P12Rik" "Filip1l" "Rasal3" "Nipsnap3b" "R3hcc1" "Zfp263"
[17] "Cybb" "Gstm4" "Rftn1" "Ppp1r12c" "Rassf4" "Btbd10" "Rab3gap1" "Abcg1"
[25] "Pcnt" "Pik3c2b" "Pms1" "Ngdn" "Klre1" "Serpinb6b"
[1] ""
[1] ""
[1] "PC5"
[1] "Fcho1" "Cd5" "Tacc1" "Cd247" "Pwwp2a" "Smc4" "Nufip2" "Orc3" "Rapgef6"
[10] "Zc3h12d" "Esyt1" "Klhdc4" "Wars2" "Rc3h1" "Tab3" "Tmem161a" "Galnt6" "Ube2g2"
[19] "Mical1" "Cdkn2aipnl" "Zfp954" "Ddx10" "Mapkapk3" "Rab28" "Ccr2" "Rhof" "Cd4"
[28] "Prpf3" "Faf1" "Bzw2"
[1] ""
[1] "Pkm2" "P2ry10" "Arhgap30" "Lcp2" "Zap70" "Xpo1" "Cd8b1" "Lck" "Trim30a" "Wdr3"
[11] "Lrrfip1" "Ms4a4b" "Ier5" "Smek1" "Plekha5" "Nrm" "Mef2c" "Sh3kbp1" "Cxcr5" "Serpina3g"
[21] "Fcer2a" "Stat1" "Serpinb1a" "Casp8ap2" "Mad2l1bp" "Fyn" "Esco1" "Ctsw" "Slc35e1" "Trp53inp1"
[1] ""
[1] ""
subtiss <- ProjectPCA(object = subtiss, do.print = FALSE)
Run Principal Component Analysis.
subtiss <- RunPCA(object = subtiss, do.print = FALSE)
subtiss <- ProjectPCA(object = subtiss, do.print = FALSE)
# If this fails for your subset, it may be that cells.use is more cells than you have left! Try reducing it.
PCHeatmap(object = subtiss, pc.use = 1:3, cells.use = 290, do.balanced = TRUE, label.columns = FALSE, num.genes = 3)
Later on (in FindClusters and TSNE) you will pick a number of principal components to use. This has the effect of keeping the major directions of variation in the data and, ideally, supressing noise. There is no correct answer to the number to use, but a decent rule of thumb is to go until the plot plateaus.
PCElbowPlot(object = subtiss)
Choose the number of principal components to use.
# Set number of principal components.
sub.n.pcs = 10
The clustering is performed based on a nearest neighbors graph. Cells that have similar expression will be joined together. The Louvain algorithm looks for groups of cells with high modularity–more connections within the group than between groups. The resolution parameter determines the scale…higher resolution will give more clusters, lower resolution will give fewer.
# Set resolution
sub.res.used <- 1
subtiss <- FindClusters(object = subtiss, reduction.type = "pca", dims.use = 1:sub.n.pcs,
resolution = sub.res.used, print.output = 0, save.SNN = TRUE)
To visualize
# If cells are too spread out, you can raise the perplexity. If you have few cells, try a lower perplexity (but never less than 10).
subtiss <- RunTSNE(object = subtiss, dims.use = 1:sub.n.pcs, seed.use = 10, perplexity=10)
# note that you can set do.label=T to help label individual clusters
TSNEPlot(object = subtiss, do.label = T)
subtiss.markers <- FindAllMarkers(object = subtiss, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
| | 0 % ~calculating
|+ | 1 % ~05s
|++ | 2 % ~04s
|++ | 3 % ~04s
|+++ | 4 % ~04s
|+++ | 5 % ~04s
|++++ | 6 % ~04s
|++++ | 8 % ~04s
|+++++ | 9 % ~04s
|+++++ | 10% ~04s
|++++++ | 11% ~04s
|++++++ | 12% ~04s
|+++++++ | 13% ~04s
|+++++++ | 14% ~04s
|++++++++ | 15% ~04s
|+++++++++ | 16% ~03s
|+++++++++ | 17% ~03s
|++++++++++ | 18% ~03s
|++++++++++ | 19% ~03s
|+++++++++++ | 20% ~03s
|+++++++++++ | 22% ~03s
|++++++++++++ | 23% ~03s
|++++++++++++ | 24% ~03s
|+++++++++++++ | 25% ~03s
|+++++++++++++ | 26% ~03s
|++++++++++++++ | 27% ~03s
|++++++++++++++ | 28% ~03s
|+++++++++++++++ | 29% ~03s
|++++++++++++++++ | 30% ~03s
|++++++++++++++++ | 31% ~03s
|+++++++++++++++++ | 32% ~03s
|+++++++++++++++++ | 33% ~03s
|++++++++++++++++++ | 34% ~03s
|++++++++++++++++++ | 35% ~03s
|+++++++++++++++++++ | 37% ~03s
|+++++++++++++++++++ | 38% ~03s
|++++++++++++++++++++ | 39% ~03s
|++++++++++++++++++++ | 40% ~03s
|+++++++++++++++++++++ | 41% ~03s
|+++++++++++++++++++++ | 42% ~02s
|++++++++++++++++++++++ | 43% ~02s
|+++++++++++++++++++++++ | 44% ~02s
|+++++++++++++++++++++++ | 45% ~02s
|++++++++++++++++++++++++ | 46% ~02s
|++++++++++++++++++++++++ | 47% ~02s
|+++++++++++++++++++++++++ | 48% ~02s
|+++++++++++++++++++++++++ | 49% ~02s
|++++++++++++++++++++++++++ | 51% ~02s
|++++++++++++++++++++++++++ | 52% ~02s
|+++++++++++++++++++++++++++ | 53% ~02s
|+++++++++++++++++++++++++++ | 54% ~02s
|++++++++++++++++++++++++++++ | 55% ~02s
|++++++++++++++++++++++++++++ | 56% ~02s
|+++++++++++++++++++++++++++++ | 57% ~02s
|++++++++++++++++++++++++++++++ | 58% ~02s
|++++++++++++++++++++++++++++++ | 59% ~02s
|+++++++++++++++++++++++++++++++ | 60% ~02s
|+++++++++++++++++++++++++++++++ | 61% ~02s
|++++++++++++++++++++++++++++++++ | 62% ~02s
|++++++++++++++++++++++++++++++++ | 63% ~02s
|+++++++++++++++++++++++++++++++++ | 65% ~01s
|+++++++++++++++++++++++++++++++++ | 66% ~01s
|++++++++++++++++++++++++++++++++++ | 67% ~01s
|++++++++++++++++++++++++++++++++++ | 68% ~01s
|+++++++++++++++++++++++++++++++++++ | 69% ~01s
|+++++++++++++++++++++++++++++++++++ | 70% ~01s
|++++++++++++++++++++++++++++++++++++ | 71% ~01s
|+++++++++++++++++++++++++++++++++++++ | 72% ~01s
|+++++++++++++++++++++++++++++++++++++ | 73% ~01s
|++++++++++++++++++++++++++++++++++++++ | 74% ~01s
|++++++++++++++++++++++++++++++++++++++ | 75% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 04s
| | 0 % ~calculating
|+ | 1 % ~08s
|++ | 2 % ~07s
|++ | 3 % ~07s
|+++ | 4 % ~07s
|+++ | 5 % ~07s
|++++ | 6 % ~07s
|++++ | 7 % ~07s
|+++++ | 8 % ~07s
|+++++ | 9 % ~06s
|++++++ | 10% ~06s
|++++++ | 11% ~06s
|+++++++ | 12% ~06s
|+++++++ | 13% ~06s
|++++++++ | 14% ~06s
|++++++++ | 15% ~06s
|+++++++++ | 16% ~06s
|+++++++++ | 17% ~06s
|++++++++++ | 18% ~06s
|++++++++++ | 19% ~06s
|+++++++++++ | 20% ~05s
|+++++++++++ | 21% ~05s
|++++++++++++ | 22% ~05s
|++++++++++++ | 23% ~05s
|+++++++++++++ | 24% ~05s
|+++++++++++++ | 26% ~05s
|++++++++++++++ | 27% ~05s
|++++++++++++++ | 28% ~05s
|+++++++++++++++ | 29% ~05s
|+++++++++++++++ | 30% ~05s
|++++++++++++++++ | 31% ~05s
|++++++++++++++++ | 32% ~05s
|+++++++++++++++++ | 33% ~04s
|+++++++++++++++++ | 34% ~04s
|++++++++++++++++++ | 35% ~04s
|++++++++++++++++++ | 36% ~04s
|+++++++++++++++++++ | 37% ~04s
|+++++++++++++++++++ | 38% ~04s
|++++++++++++++++++++ | 39% ~04s
|++++++++++++++++++++ | 40% ~04s
|+++++++++++++++++++++ | 41% ~04s
|+++++++++++++++++++++ | 42% ~04s
|++++++++++++++++++++++ | 43% ~04s
|++++++++++++++++++++++ | 44% ~04s
|+++++++++++++++++++++++ | 45% ~04s
|+++++++++++++++++++++++ | 46% ~04s
|++++++++++++++++++++++++ | 47% ~03s
|++++++++++++++++++++++++ | 48% ~03s
|+++++++++++++++++++++++++ | 49% ~03s
|+++++++++++++++++++++++++ | 50% ~03s
|++++++++++++++++++++++++++ | 51% ~03s
|+++++++++++++++++++++++++++ | 52% ~03s
|+++++++++++++++++++++++++++ | 53% ~03s
|++++++++++++++++++++++++++++ | 54% ~03s
|++++++++++++++++++++++++++++ | 55% ~03s
|+++++++++++++++++++++++++++++ | 56% ~03s
|+++++++++++++++++++++++++++++ | 57% ~03s
|++++++++++++++++++++++++++++++ | 58% ~03s
|++++++++++++++++++++++++++++++ | 59% ~03s
|+++++++++++++++++++++++++++++++ | 60% ~03s
|+++++++++++++++++++++++++++++++ | 61% ~03s
|++++++++++++++++++++++++++++++++ | 62% ~02s
|++++++++++++++++++++++++++++++++ | 63% ~02s
|+++++++++++++++++++++++++++++++++ | 64% ~02s
|+++++++++++++++++++++++++++++++++ | 65% ~02s
|++++++++++++++++++++++++++++++++++ | 66% ~02s
|++++++++++++++++++++++++++++++++++ | 67% ~02s
|+++++++++++++++++++++++++++++++++++ | 68% ~02s
|+++++++++++++++++++++++++++++++++++ | 69% ~02s
|++++++++++++++++++++++++++++++++++++ | 70% ~02s
|++++++++++++++++++++++++++++++++++++ | 71% ~02s
|+++++++++++++++++++++++++++++++++++++ | 72% ~02s
|+++++++++++++++++++++++++++++++++++++ | 73% ~02s
|++++++++++++++++++++++++++++++++++++++ | 74% ~02s
|++++++++++++++++++++++++++++++++++++++ | 76% ~02s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~02s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 07s
| | 0 % ~calculating
|+ | 1 % ~09s
|++ | 2 % ~09s
|++ | 3 % ~08s
|+++ | 4 % ~08s
|+++ | 5 % ~08s
|++++ | 6 % ~08s
|++++ | 7 % ~08s
|+++++ | 9 % ~07s
|+++++ | 10% ~07s
|++++++ | 11% ~07s
|++++++ | 12% ~07s
|+++++++ | 13% ~07s
|+++++++ | 14% ~07s
|++++++++ | 15% ~07s
|++++++++ | 16% ~07s
|+++++++++ | 17% ~07s
|++++++++++ | 18% ~07s
|++++++++++ | 19% ~07s
|+++++++++++ | 20% ~07s
|+++++++++++ | 21% ~07s
|++++++++++++ | 22% ~06s
|++++++++++++ | 23% ~06s
|+++++++++++++ | 24% ~06s
|+++++++++++++ | 26% ~06s
|++++++++++++++ | 27% ~06s
|++++++++++++++ | 28% ~06s
|+++++++++++++++ | 29% ~06s
|+++++++++++++++ | 30% ~06s
|++++++++++++++++ | 31% ~06s
|++++++++++++++++ | 32% ~06s
|+++++++++++++++++ | 33% ~05s
|++++++++++++++++++ | 34% ~05s
|++++++++++++++++++ | 35% ~05s
|+++++++++++++++++++ | 36% ~05s
|+++++++++++++++++++ | 37% ~05s
|++++++++++++++++++++ | 38% ~05s
|++++++++++++++++++++ | 39% ~05s
|+++++++++++++++++++++ | 40% ~05s
|+++++++++++++++++++++ | 41% ~05s
|++++++++++++++++++++++ | 43% ~05s
|++++++++++++++++++++++ | 44% ~05s
|+++++++++++++++++++++++ | 45% ~04s
|+++++++++++++++++++++++ | 46% ~04s
|++++++++++++++++++++++++ | 47% ~04s
|++++++++++++++++++++++++ | 48% ~04s
|+++++++++++++++++++++++++ | 49% ~04s
|+++++++++++++++++++++++++ | 50% ~04s
|++++++++++++++++++++++++++ | 51% ~04s
|+++++++++++++++++++++++++++ | 52% ~04s
|+++++++++++++++++++++++++++ | 53% ~04s
|++++++++++++++++++++++++++++ | 54% ~04s
|++++++++++++++++++++++++++++ | 55% ~04s
|+++++++++++++++++++++++++++++ | 56% ~04s
|+++++++++++++++++++++++++++++ | 57% ~03s
|++++++++++++++++++++++++++++++ | 59% ~03s
|++++++++++++++++++++++++++++++ | 60% ~03s
|+++++++++++++++++++++++++++++++ | 61% ~03s
|+++++++++++++++++++++++++++++++ | 62% ~03s
|++++++++++++++++++++++++++++++++ | 63% ~03s
|++++++++++++++++++++++++++++++++ | 64% ~03s
|+++++++++++++++++++++++++++++++++ | 65% ~03s
|+++++++++++++++++++++++++++++++++ | 66% ~03s
|++++++++++++++++++++++++++++++++++ | 67% ~03s
|+++++++++++++++++++++++++++++++++++ | 68% ~03s
|+++++++++++++++++++++++++++++++++++ | 69% ~03s
|++++++++++++++++++++++++++++++++++++ | 70% ~02s
|++++++++++++++++++++++++++++++++++++ | 71% ~02s
|+++++++++++++++++++++++++++++++++++++ | 72% ~02s
|+++++++++++++++++++++++++++++++++++++ | 73% ~02s
|++++++++++++++++++++++++++++++++++++++ | 74% ~02s
|++++++++++++++++++++++++++++++++++++++ | 76% ~02s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~02s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~02s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~02s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~02s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~02s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~02s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 08s
| | 0 % ~calculating
|+ | 1 % ~06s
|+ | 2 % ~06s
|++ | 3 % ~06s
|++ | 4 % ~06s
|+++ | 5 % ~06s
|+++ | 6 % ~06s
|++++ | 7 % ~06s
|++++ | 8 % ~05s
|+++++ | 9 % ~05s
|+++++ | 10% ~05s
|++++++ | 11% ~05s
|++++++ | 12% ~05s
|+++++++ | 13% ~05s
|+++++++ | 14% ~05s
|++++++++ | 15% ~05s
|++++++++ | 16% ~05s
|+++++++++ | 17% ~05s
|+++++++++ | 18% ~05s
|++++++++++ | 19% ~05s
|++++++++++ | 20% ~05s
|+++++++++++ | 21% ~05s
|+++++++++++ | 22% ~05s
|++++++++++++ | 23% ~05s
|++++++++++++ | 24% ~04s
|+++++++++++++ | 25% ~04s
|+++++++++++++ | 26% ~04s
|++++++++++++++ | 27% ~04s
|++++++++++++++ | 28% ~04s
|+++++++++++++++ | 29% ~04s
|+++++++++++++++ | 30% ~04s
|++++++++++++++++ | 31% ~04s
|++++++++++++++++ | 32% ~04s
|+++++++++++++++++ | 33% ~04s
|+++++++++++++++++ | 34% ~04s
|++++++++++++++++++ | 35% ~04s
|++++++++++++++++++ | 36% ~04s
|+++++++++++++++++++ | 37% ~04s
|+++++++++++++++++++ | 38% ~04s
|++++++++++++++++++++ | 39% ~04s
|++++++++++++++++++++ | 40% ~04s
|+++++++++++++++++++++ | 41% ~03s
|+++++++++++++++++++++ | 42% ~03s
|++++++++++++++++++++++ | 43% ~03s
|++++++++++++++++++++++ | 44% ~03s
|+++++++++++++++++++++++ | 45% ~03s
|+++++++++++++++++++++++ | 46% ~03s
|++++++++++++++++++++++++ | 47% ~03s
|++++++++++++++++++++++++ | 48% ~03s
|+++++++++++++++++++++++++ | 49% ~03s
|+++++++++++++++++++++++++ | 50% ~03s
|++++++++++++++++++++++++++ | 51% ~03s
|++++++++++++++++++++++++++ | 52% ~03s
|+++++++++++++++++++++++++++ | 53% ~03s
|+++++++++++++++++++++++++++ | 54% ~03s
|++++++++++++++++++++++++++++ | 55% ~03s
|++++++++++++++++++++++++++++ | 56% ~03s
|+++++++++++++++++++++++++++++ | 57% ~03s
|+++++++++++++++++++++++++++++ | 58% ~03s
|++++++++++++++++++++++++++++++ | 59% ~02s
|++++++++++++++++++++++++++++++ | 60% ~02s
|+++++++++++++++++++++++++++++++ | 61% ~02s
|+++++++++++++++++++++++++++++++ | 62% ~02s
|++++++++++++++++++++++++++++++++ | 63% ~02s
|++++++++++++++++++++++++++++++++ | 64% ~02s
|+++++++++++++++++++++++++++++++++ | 65% ~02s
|+++++++++++++++++++++++++++++++++ | 66% ~02s
|++++++++++++++++++++++++++++++++++ | 67% ~02s
|++++++++++++++++++++++++++++++++++ | 68% ~02s
|+++++++++++++++++++++++++++++++++++ | 69% ~02s
|+++++++++++++++++++++++++++++++++++ | 70% ~02s
|++++++++++++++++++++++++++++++++++++ | 71% ~02s
|++++++++++++++++++++++++++++++++++++ | 72% ~02s
|+++++++++++++++++++++++++++++++++++++ | 73% ~02s
|+++++++++++++++++++++++++++++++++++++ | 74% ~02s
|++++++++++++++++++++++++++++++++++++++ | 75% ~02s
|++++++++++++++++++++++++++++++++++++++ | 76% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~01s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~01s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~01s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~01s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~01s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 06s
subtiss.markers %>% group_by(cluster) %>% top_n(3)
Selecting by gene
Check expression of genes of interset.
genes_to_check = c('Lgr5','Fabp5','Marcks','Zfp830','Slc6a8')
FeaturePlot(subtiss, genes_to_check, pt.size = 1)
Dotplots let you see the intensity of exppression and the fraction of cells expressing for each of your genes of interest.
# To change the y-axis to show raw counts, add use.raw = T.
DotPlot(subtiss, genes_to_check, plot.legend = T)
How big are the clusters?
table(subtiss@ident)
0 1 2 3
62 47 39 36
Color by metadata, like plate barcode, to check for batch effects.
TSNEPlot(object = subtiss, do.return = TRUE, group.by = "plate.barcode")
Print a table showing the count of cells in each identity category from each plate.
table(as.character(subtiss@ident), as.character(subtiss@meta.data$plate.barcode))
B001717 B002775 MAA000545 MAA000752 MAA000801 MAA000922
0 8 11 7 12 19 5
1 1 1 16 8 16 5
2 6 2 5 4 21 1
3 27 4 0 1 3 1
When you save the annotated tissue, please give it a name.
filename = here('00_data_ingest', '04_tissue_robj_generated',
paste0("facs", tissue_of_interest, "_seurat_tiss.Robj"))
print(filename)
[1] "/Users/olgabot/code/tabula-muris/00_data_ingest/04_tissue_robj_generated/facsKidney_seurat_tiss.Robj"
save(tiss, file=filename)
# To reload a saved object
# filename = here('00_data_ingest', '04_tissue_robj_generated',
# paste0("facs", tissue_of_interest, "_seurat_tiss.Robj"))
# load(file=filename)
So that Biohub can easily combine all your cell_ontology_classs, please export them as a simple csv.
head(tiss@meta.data)
filename = here('00_data_ingest', '03_tissue_cell_ontology_class_csv',
paste0(tissue_of_interest, "_cell_ontology_class.csv"))
write.csv(tiss@meta.data[,c('plate.barcode','cell_ontology_class','cell_ontology_id')], file=filename)
cannot open file '/Users/olgabot/code/tabula-muris/00_data_ingest/03_tissue_cell_ontology_class_csv/Kidney_cell_ontology_class.csv': No such file or directoryError in file(file, ifelse(append, "a", "w")) :
cannot open the connection